<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Granite.Modeling</name>
    </assembly>
    <members>
        <member name="T:Granite.Modeling.ChangeTrackingModelBase">
            <summary>
            This ModelBase tracks which fields have changed since the last time Checkpoint or Revert was called.
            </summary>
        </member>
        <member name="T:Granite.Modeling.ModelBase`1">
            <summary>
            A base class for models and entities.
            </summary>
            <typeparam name="TPropertyTracking">The type of property tracking desired.</typeparam>
        </member>
        <member name="F:Granite.Modeling.ModelBase`1.m_Properties">
            <summary>
            Backing store for properties
            </summary>
        </member>
        <member name="M:Granite.Modeling.ModelBase`1.#ctor(`0)">
            <summary>
            Creates a model using the supplied property bag
            </summary>
            <param name="propertyBag">Property bag to use as a backing store for fields</param>
        </member>
        <member name="M:Granite.Modeling.ModelBase`1.#ctor">
            <summary>
            Creates a model by auto-constructing the property bag defined by TPropertyTracking.
            </summary>
            <remarks>Requires TPropertyTracking have a public constructor that accepts an Object</remarks>
        </member>
        <member name="M:Granite.Modeling.ModelBase`1.GetErrors">
            <summary>
            Returns an array of errors.
            </summary>
            <remarks>Call Validate() to refresh this property</remarks>
        </member>
        <member name="M:Granite.Modeling.ModelBase`1.GetErrors(System.String)">
            <summary>
            Returns an array of errors.
            </summary>
            <remarks>Call Validate() to refresh this property</remarks>
        </member>
        <member name="M:Granite.Modeling.ModelBase`1.OnErrorsChanged(System.String)">
            <summary>
            Triggers the ErrorsChanged event.
            </summary>
        </member>
        <member name="M:Granite.Modeling.ModelBase`1.OnValidateObject(System.Collections.Generic.IList{System.ComponentModel.DataAnnotations.ValidationResult})">
            <summary>
            Override this method to add imperative validation at the object level.
            </summary>
            <param name="results">A collection of the declarative validation errors. You may add and remove errors from this collection.</param>
        </member>
        <member name="M:Granite.Modeling.ModelBase`1.OnValidateProperty(System.String,System.Collections.Generic.IList{System.ComponentModel.DataAnnotations.ValidationResult})">
            <summary>
            Override this method to add imperative validation at the property level.
            </summary>
            <param name="propertyName">The name of the property being validated.</param>
            <param name="results">A collection of the declarative validation errors. You may add and remove errors from this collection.</param>
        </member>
        <member name="M:Granite.Modeling.ModelBase`1.Validate">
            <summary>
            This forces the object to be completely revalidated.
            </summary>
            <returns>True if the object has no errors</returns>
        </member>
        <member name="M:Granite.Modeling.ModelBase`1.GetOrCreate``1(System.String)">
            <summary>
            Fetches a value, creating it if it doesn't exist.
            </summary>
            <typeparam name="T">Expected type that has a parameterless constructor</typeparam>
            <param name="propertyName">Case-sensitive property name</param>
            <returns></returns>
            <remarks>Executing the constructor will trigger validation but not a property-changed event.</remarks>
        </member>
        <member name="M:Granite.Modeling.ModelBase`1.GetOrCreate``1(System.String,System.Func{``0})">
            <summary>
            Fetches a value, creating it if it doesn't exist.
            </summary>
            <typeparam name="T">Expected type</typeparam>
            <param name="propertyName">Case-sensitive property name</param>
            <param name="creationFunction">Function to execute if the property doesn't already exist.</param>
            <returns></returns>
            <remarks>Executing the default function will trigger validation but not a property-changed event.</remarks>
        </member>
        <member name="M:Granite.Modeling.ModelBase`1.GetOrDefault``1(System.String,``0)">
            <summary>
            Fetches a value, using the default value it if it doesn't exist.
            </summary>
            <typeparam name="T">Expected type</typeparam>
            <param name="propertyName">Case-sensitive property name</param>
            <param name="defaultValue">Default value to use</param>
            <returns></returns>
            <remarks>Storing the default value will trigger validation but not a property-changed event.</remarks>
        </member>
        <member name="M:Granite.Modeling.ModelBase`1.GetOrDefault``1(System.String)">
            <summary>
            Fetches a value, returning Default(T) if it doesn't exist.
            </summary>
            <typeparam name="T">Expected type</typeparam>
            <param name="propertyName">Case-sensitive property name</param>
            <returns></returns>
            <remarks>Storing the default value will trigger validation but not a property-changed event.</remarks>
        </member>
        <member name="M:Granite.Modeling.ModelBase`1.Load(System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Use this to load the model from an external datasource.
            </summary>
            <param name="fields"></param>
            <remarks>This would generally be called from a constructor</remarks>
        </member>
        <member name="M:Granite.Modeling.ModelBase`1.OnPropertyChanged(System.String,System.Object,System.Object)">
            <summary>
            Triggers the PropertyChanged event.
            </summary>
        </member>
        <member name="M:Granite.Modeling.ModelBase`1.SetValue(System.String,System.Object)">
            <summary>
            Set the indicated property to the value.
            If the value doesn't match the previous value, or if there is no previous value, raise a property changed notification.
            </summary>
            <param name="propertyName">Name of property to be created/updated</param>
            <param name="value">Value to be saved.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">An ArgumentOutOfRangeException is thrown if System.Reflection.Missing is passed as the value.</exception>
        </member>
        <member name="E:Granite.Modeling.ModelBase`1.ErrorsChanged">
            <summary>
            Raised when the the errors collection has changed. 
            </summary>
            <remarks>This may be fired even when no actual change has occured.</remarks>
        </member>
        <member name="E:Granite.Modeling.ModelBase`1.PropertyChanged">
            <summary>
            Raised when a property changes.
            </summary>
            <remarks>This may be fired even when no actual change has occured.</remarks>
        </member>
        <member name="P:Granite.Modeling.ModelBase`1.HasErrors">
            <summary>
            Returns True if there are any errors.
            </summary>
            <remarks>Call Validate() to refresh this property</remarks>
        </member>
        <member name="P:Granite.Modeling.ModelBase`1.Properties">
            <summary>
            Returns the underlying property bag
            </summary>
        </member>
        <member name="M:Granite.Modeling.ChangeTrackingModelBase.#ctor">
            <summary>
            This ModelBase tracks which fields have changed since the last time Checkpoint or Revert was called.
            </summary>
        </member>
        <member name="M:Granite.Modeling.ChangeTrackingModelBase.#ctor(Granite.Modeling.Internals.ChangeTrackingPropertyBag)">
            <summary>
            Creates a model using the supplied property bag
            </summary>
            <param name="propertyBag">Property bag to use as a backing store for fields</param>
        </member>
        <member name="M:Granite.Modeling.ChangeTrackingModelBase.Checkpoint">
            <summary>
            Marks all fields as unchanged and clears the IsDIrty flag.
            </summary>
        </member>
        <member name="M:Granite.Modeling.ChangeTrackingModelBase.Revert">
            <summary>
            Discards all pending changes and reverts to the values used the last time Checkpoint was called.
            </summary>
        </member>
        <member name="M:Granite.Modeling.ChangeTrackingModelBase.Update(System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Updates the model using the dictionary and checkpoints the changes. 
            </summary>
            <param name="fields"></param>
            <remarks>This is usually called as a result of a stored procedure call. Said stored procedure only needs to return altered fields.</remarks>
        </member>
        <member name="P:Granite.Modeling.ChangeTrackingModelBase.IsDirty">
            <summary>
            Returns True if any fields were modified since the last call to Checkpoint. This does not walk the object graph.
            </summary>
        </member>
        <member name="T:Granite.Modeling.ModelCollection`1">
            <summary>
            ModelBase using the default property bag implementation.
            </summary>
        </member>
        <member name="T:Granite.Modeling.ModelCollection`2">
            <summary>
            A base class for collections of models and entities.
            </summary>
            <typeparam name="TItemType">The type of model being stored</typeparam>
            <typeparam name="TPropertyTracking">The type of property tracking desired.</typeparam>
        </member>
        <member name="F:Granite.Modeling.ModelCollection`2.m_Properties">
            <summary>
            Backing store for properties
            </summary>
        </member>
        <member name="M:Granite.Modeling.ModelCollection`2.#ctor(`1)">
            <summary>
            Creates a model using the supplied property bag
            </summary>
            <param name="propertyBag">Property bag to use as a backing store for fields</param>
        </member>
        <member name="M:Granite.Modeling.ModelCollection`2.#ctor">
            <summary>
            Creates a model by auto-constructing the property bag defined by TPropertyTracking.
            </summary>
            <remarks>Requires TPropertyTracking have a public constructor that accepts an Object</remarks>
        </member>
        <member name="M:Granite.Modeling.ModelCollection`2.GetErrors(System.String)">
            <summary>
            Returns an array of errors.
            </summary>
            <remarks>Call Validate() to refresh this property</remarks>
        </member>
        <member name="M:Granite.Modeling.ModelCollection`2.OnErrorsChanged(System.String)">
            <summary>
            Triggers the ErrorsChanged event.
            </summary>
        </member>
        <member name="M:Granite.Modeling.ModelCollection`2.OnValidateObject(System.Collections.Generic.IList{System.ComponentModel.DataAnnotations.ValidationResult})">
            <summary>
            Override this method to add imperative validation at the object level.
            </summary>
            <param name="results">A collection of the declarative validation errors. You may add and remove errors from this collection.</param>
        </member>
        <member name="M:Granite.Modeling.ModelCollection`2.OnValidateProperty(System.String,System.Collections.Generic.IList{System.ComponentModel.DataAnnotations.ValidationResult})">
            <summary>
            Override this method to add imperative validation at the property level.
            </summary>
            <param name="propertyName">The name of the property being validated.</param>
            <param name="results">A collection of the declarative validation errors. You may add and remove errors from this collection.</param>
        </member>
        <member name="M:Granite.Modeling.ModelCollection`2.Validate">
            <summary>
            This forces the object to be completely revalidated.
            </summary>
            <returns>True if the object has no errors</returns>
        </member>
        <member name="M:Granite.Modeling.ModelCollection`2.GetOrCreate``1(System.String)">
            <summary>
            Fetches a value, creating it if it doesn't exist.
            </summary>
            <typeparam name="T">Expected type that has a parameterless constructor</typeparam>
            <param name="propertyName">Case-sensitive property name</param>
            <returns></returns>
            <remarks>Executing the constructor will trigger validation but not a property-changed event.</remarks>
        </member>
        <member name="M:Granite.Modeling.ModelCollection`2.GetOrCreate``1(System.String,System.Func{``0})">
            <summary>
            Fetches a value, creating it if it doesn't exist.
            </summary>
            <typeparam name="T">Expected type</typeparam>
            <param name="propertyName">Case-sensitive property name</param>
            <param name="creationFunction">Function to execute if the property doesn't already exist.</param>
            <returns></returns>
            <remarks>Executing the default function will trigger validation but not a property-changed event.</remarks>
        </member>
        <member name="M:Granite.Modeling.ModelCollection`2.GetOrDefault``1(System.String,``0)">
            <summary>
            Fetches a value, using the default value it if it doesn't exist.
            </summary>
            <typeparam name="T">Expected type</typeparam>
            <param name="propertyName">Case-sensitive property name</param>
            <param name="defaultValue">Default value to use</param>
            <returns></returns>
            <remarks>Storing the default value will trigger validation but not a property-changed event.</remarks>
        </member>
        <member name="M:Granite.Modeling.ModelCollection`2.GetOrDefault``1(System.String)">
            <summary>
            Fetches a value, returning Default(T) if it doesn't exist.
            </summary>
            <typeparam name="T">Expected type</typeparam>
            <param name="propertyName">Case-sensitive property name</param>
            <returns></returns>
            <remarks>Storing the default value will trigger validation but not a property-changed event.</remarks>
        </member>
        <member name="M:Granite.Modeling.ModelCollection`2.Load(System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Use this to load the model from an external datasource.
            </summary>
            <param name="fields"></param>
            <remarks>This would generally be called from a constructor</remarks>
        </member>
        <member name="M:Granite.Modeling.ModelCollection`2.OnPropertyChanged(System.String,System.Object,System.Object)">
            <summary>
            Triggers the PropertyChanged event.
            </summary>
        </member>
        <member name="M:Granite.Modeling.ModelCollection`2.SetValue(System.String,System.Object)">
            <summary>
            Set the indicated property to the value.
            If the value doesn't match the previous value, or if there is no previous value, raise a property changed notification.
            </summary>
            <param name="propertyName">Name of property to be created/updated</param>
            <param name="value">Value to be saved.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">An ArgumentOutOfRangeException is thrown if System.Reflection.Missing is passed as the value.</exception>
        </member>
        <member name="E:Granite.Modeling.ModelCollection`2.ErrorsChanged">
            <summary>
            Raised when the the errors collection has changed. 
            </summary>
            <remarks>This may be fired even when no actual change has occured.</remarks>
        </member>
        <member name="P:Granite.Modeling.ModelCollection`2.HasErrors">
            <summary>
            Returns True if there are any errors.
            </summary>
            <remarks>Call Validate() to refresh this property</remarks>
        </member>
        <member name="P:Granite.Modeling.ModelCollection`2.Properties">
            <summary>
            Returns the underlying property bag
            </summary>
        </member>
        <member name="M:Granite.Modeling.ModelCollection`1.#ctor(Granite.Modeling.Internals.PropertyBag)">
            <summary>
            Creates a model using the supplied property bag
            </summary>
            <param name="propertyBag">Property bag to use as a backing store for fields</param>
        </member>
        <member name="M:Granite.Modeling.ModelCollection`1.#ctor">
            <summary>
            Creates a model using the default property bag implementation..
            </summary>
        </member>
        <member name="T:Granite.Modeling.DetailedPropertyChangedEventArgs">
            <summary>
            A PropertyChangedEventArgs event with the old and new values.
            </summary>
        </member>
        <member name="M:Granite.Modeling.DetailedPropertyChangedEventArgs.#ctor(System.String,System.Object,System.Object)">
            <summary>
            A PropertyChangedEventArgs event with the old and new values.
            </summary>
            <param name="propertyName">Name of property that changed.</param>
            <param name="oldValue">Original value. If unknown then use System.Reflection.Missing.Value.</param>
            <param name="newValue">New value.</param>
        </member>
        <member name="P:Granite.Modeling.DetailedPropertyChangedEventArgs.NewValue">
            <summary>
            New value.
            </summary>
        </member>
        <member name="P:Granite.Modeling.DetailedPropertyChangedEventArgs.OldValue">
            <summary>
            Original value. If unknown this will be System.Reflection.Missing.Value.
            </summary>
        </member>
        <member name="T:Granite.Modeling.Internals.ChangeTrackingPropertyBag">
            <summary>
            Property bag with basic change tracking capabilities.
            </summary>
        </member>
        <member name="T:Granite.Modeling.Internals.PropertyBagBase">
            <summary>
            This is the template for a model's backing store.
            </summary>
        </member>
        <member name="M:Granite.Modeling.Internals.PropertyBagBase.#ctor(System.Object)">
            <summary>
            This is the template for a model's backing store.
            </summary>
            <param name="owner">Owning model, used to fetch metadata</param>
        </member>
        <member name="M:Granite.Modeling.Internals.PropertyBagBase.GetOrCreate``1(System.String,System.Func{``0})">
            <summary>
            Fetches a value, creating it if it doesn't exist.
            </summary>
            <typeparam name="T">Expected type</typeparam>
            <param name="propertyName">Case-sensitive property name</param>
            <param name="creationFunction">Function to execute if the property doesn't already exist.</param>
            <returns></returns>
            <remarks>Executing the default function will trigger validation but not a property-changed event.</remarks>
        </member>
        <member name="M:Granite.Modeling.Internals.PropertyBagBase.GetOrCreate``1(System.String)">
            <summary>
            Fetches a value, creating it if it doesn't exist.
            </summary>
            <typeparam name="T">Expected type that has a parameterless constructor</typeparam>
            <param name="propertyName">Case-sensitive property name</param>
            <returns></returns>
            <remarks>Executing the constructor will trigger validation but not a property-changed event.</remarks>
        </member>
        <member name="M:Granite.Modeling.Internals.PropertyBagBase.GetOrDefault``1(System.String)">
            <summary>
            Fetches a value, returning Default(T) if it doesn't exist.
            </summary>
            <typeparam name="T">Expected type</typeparam>
            <param name="propertyName">Case-sensitive property name</param>
            <returns></returns>
            <remarks>Storing the default value will trigger validation but not a property-changed event.</remarks>
        </member>
        <member name="M:Granite.Modeling.Internals.PropertyBagBase.GetOrDefault``1(System.String,``0)">
            <summary>
            Fetches a value, using the default value it if it doesn't exist.
            </summary>
            <typeparam name="T">Expected type</typeparam>
            <param name="propertyName">Case-sensitive property name</param>
            <param name="defaultValue">Default value to use</param>
            <returns></returns>
            <remarks>Storing the default value will trigger validation but not a property-changed event.</remarks>
        </member>
        <member name="M:Granite.Modeling.Internals.PropertyBagBase.GetValue(System.String)">
            <summary>
            Implmentors need to override this to return the indicated value.
            </summary>
            <param name="propertyName">Name of the property to fetch.</param>
            <returns>The indicated value or System.Reflection.Missing if the value isn't defined.</returns>
        </member>
        <member name="M:Granite.Modeling.Internals.PropertyBagBase.IsDefined(System.String)">
            <summary>
            This property indicates whether or not the assoicated property was created.
            </summary>
            <param name="propertyName"></param>
            <returns></returns>
        </member>
        <member name="M:Granite.Modeling.Internals.PropertyBagBase.OnRevalidateObject">
            <summary>
            Triggers the RevalidateObject event.
            </summary>
        </member>
        <member name="M:Granite.Modeling.Internals.PropertyBagBase.OnRevalidateProperty(System.String)">
            <summary>
            Triggers the RevalidateProperty event.
            </summary>
        </member>
        <member name="M:Granite.Modeling.Internals.PropertyBagBase.RevalidateAll">
            <summary>
            Uses the property metadata to trigger validation on all model properties. Then requests validation on the object iteself.
            </summary>
        </member>
        <member name="M:Granite.Modeling.Internals.PropertyBagBase.SetValue(System.String,System.Object,Granite.Modeling.Internals.PropertySetModes)">
            <summary>
            Implementors need to override this to save the indicated value.
            </summary>
            <param name="propertyName">Name of property to update</param>
            <param name="value">The value to be saved. A null will set the value to null. System.Reflection.Missing will delete the field entirely.</param>
            <param name="mode">Indicates special handling for the action.</param>
            <returns>True if the value actually changed</returns>
            <remarks>This will create the property if it doesn't already exist</remarks>
        </member>
        <member name="M:Granite.Modeling.Internals.PropertyBagBase.SetValue(System.String,System.Object)">
            <summary>
            Set the indicated property to the value.
            If the value doesn't match the previous value, or if there is no previous value, raise a property changed notification.
            </summary>
            <param name="propertyName">Name of property to be created/updated</param>
            <param name="value">Value to be saved.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">An ArgumentOutOfRangeException is thrown if System.Reflection.Missing is passed as the value.</exception>
        </member>
        <member name="M:Granite.Modeling.Internals.PropertyBagBase.FixCasing(System.String)">
            <summary>
            If the property is listed in the owner's meta data this corrects the casing. Otherwise it returns the unaltered parameter.
            </summary>
            <param name="propertyName"></param>
            <returns></returns>
        </member>
        <member name="M:Granite.Modeling.Internals.PropertyBagBase.OnPropertyChanged(System.String)">
            <summary>
            Triggers the PropertyChanged event.
            </summary>
        </member>
        <member name="E:Granite.Modeling.Internals.PropertyBagBase.PropertyChanged">
            <summary>
            This fires for each changed property.
            </summary>
        </member>
        <member name="E:Granite.Modeling.Internals.PropertyBagBase.RevalidateObject">
            <summary>
            This fires after one or more properties have been changed and their corresponding RevalidateProperty events have been handled. 
            </summary>
        </member>
        <member name="E:Granite.Modeling.Internals.PropertyBagBase.RevalidateProperty">
            <summary>
            This fires after one or more properties have been changed. 
            </summary>
        </member>
        <member name="P:Granite.Modeling.Internals.PropertyBagBase.Metadata">
            <summary>
            Cached metadata for the associated model.
            </summary>
        </member>
        <member name="M:Granite.Modeling.Internals.ChangeTrackingPropertyBag.#ctor(System.Object)">
            <summary>
            Property bag with basic change tracking capabilities.
            </summary>
            <param name="owner"></param>
        </member>
        <member name="M:Granite.Modeling.Internals.ChangeTrackingPropertyBag.Checkpoint">
            <summary>
            Marks all fields as unchanged by storing them in the original values collection.
            </summary>
        </member>
        <member name="M:Granite.Modeling.Internals.ChangeTrackingPropertyBag.GetValue(System.String)">
            <summary>
            Implmentors need to override this to return the indicated value.
            </summary>
            <param name="propertyName">Name of the property to fetch.</param>
            <returns>The indicated value or System.Reflection.Missing if the value isn't defined.</returns>
        </member>
        <member name="M:Granite.Modeling.Internals.ChangeTrackingPropertyBag.IsDefined(System.String)">
            <summary>
            This property indicates whether or not the assoicated property was created.
            </summary>
            <param name="propertyName"></param>
            <returns></returns>
        </member>
        <member name="M:Granite.Modeling.Internals.ChangeTrackingPropertyBag.Revert">
            <summary>
            Replaces the current values collection with the original values collection.
            </summary>
        </member>
        <member name="M:Granite.Modeling.Internals.ChangeTrackingPropertyBag.SetValue(System.String,System.Object,Granite.Modeling.Internals.PropertySetModes)">
            <summary>
            Implementors need to override this to save the indicated value.
            </summary>
            <param name="propertyName">Name of property to update</param>
            <param name="value">The value to be saved. A null will set the value to null. System.Reflection.Missing will delete the field entirely.</param>
            <param name="mode">Indicates special handling for the action.</param>
            <returns>True if the value actually changed</returns>
            <remarks>This will create the property if it doesn't already exist</remarks>
        </member>
        <member name="T:Granite.Modeling.Internals.PropertyBag">
            <summary>
            This is the simplest implementation of PropertyBagBase. It supports normal property-change nofifications and validation events.
            </summary>
        </member>
        <member name="M:Granite.Modeling.Internals.PropertyBag.#ctor(System.Object)">
            <summary>
            This is the simplest implementation of PropertyBagBase. It supports normal property-change nofifications and validation events.
            </summary>
            <param name="owner">Pass-through to PropertyBagBase</param>
        </member>
        <member name="M:Granite.Modeling.Internals.PropertyBag.GetValue(System.String)">
            <summary>
            Implmentors need to override this to return the indicated value.
            </summary>
            <param name="propertyName">Name of the property to fetch.</param>
            <returns>The indicated value or System.Reflection.Missing if the value isn't defined.</returns>
        </member>
        <member name="M:Granite.Modeling.Internals.PropertyBag.IsDefined(System.String)">
            <summary>
            This property indicates whether or not the assoicated property was created.
            </summary>
            <param name="propertyName"></param>
            <returns></returns>
        </member>
        <member name="M:Granite.Modeling.Internals.PropertyBag.SetValue(System.String,System.Object,Granite.Modeling.Internals.PropertySetModes)">
            <summary>
            Implementors need to override this to save the indicated value.
            </summary>
            <param name="propertyName">Name of property to update</param>
            <param name="value">The value to be saved. A null will set the value to null. System.Reflection.Missing will delete the field entirely.</param>
            <param name="mode">Indicates special handling for the action. Ignores SetAsOriginal.</param>
            <remarks>This will create the property if it doesn't already exist</remarks>
        </member>
        <member name="T:Granite.Modeling.Internals.PropertySetModes">
            <summary>
            Used to indicate what special behaviors are needed when setting a value in PropertyBagBase.
            </summary>
        </member>
        <member name="F:Granite.Modeling.Internals.PropertySetModes.None">
            <summary>
            No special effects or events.
            </summary>
        </member>
        <member name="F:Granite.Modeling.Internals.PropertySetModes.RaiseChangedEvent">
            <summary>
            "Causes the model to raise its property changed event")
            </summary>
        </member>
        <member name="F:Granite.Modeling.Internals.PropertySetModes.SetAsOriginal">
            <summary>
            For property bags that support it, treat the new value as the original, unchanged value. Primarily used for lazy-loading properties.
            </summary>
        </member>
        <member name="F:Granite.Modeling.Internals.PropertySetModes.ValidateProperty">
            <summary>
            Causes the model to revalidate the indicated property.
            </summary>
        </member>
        <member name="F:Granite.Modeling.Internals.PropertySetModes.ValidateObject">
            <summary>
            Causes the model to revalidate the object. Property-level validators are not run.
            </summary>
        </member>
        <member name="F:Granite.Modeling.Internals.PropertySetModes.FixCasing">
            <summary>
            "The property name may have the wrong casing or otherwise need to be mapped.
            </summary>
        </member>
        <member name="T:System.ComponentModel.DataErrorsChangedEventArgs">
            Summary:
                Provides data for the System.ComponentModel.INotifyDataErrorInfo.ErrorsChanged
                event.
        </member>
        <member name="M:System.ComponentModel.DataErrorsChangedEventArgs.#ctor(System.String)">
             Summary:
                 Initializes a new instance of the System.ComponentModel.DataErrorsChangedEventArgs
                 class.
            
             Parameters:
               propertyName:
                 The name of the property for which the errors changed, or null or System.String.Empty
                 if the errors affect multiple properties.
        </member>
        <member name="P:System.ComponentModel.DataErrorsChangedEventArgs.PropertyName">
             Summary:
                 Gets the name of the property for which the errors changed, or null or System.String.Empty
                 if the errors affect multiple properties.
            
             Returns:
                 The name of the affected property, or null or System.String.Empty if the
                 errors affect multiple properties.
        </member>
        <member name="T:Granite.Modeling.ModelBase">
            <summary>
            ModelBase using the default property bag implementation.
            </summary>
        </member>
        <member name="M:Granite.Modeling.ModelBase.#ctor(Granite.Modeling.Internals.PropertyBag)">
            <summary>
            Creates a model using the supplied property bag
            </summary>
            <param name="propertyBag">Property bag to use as a backing store for fields</param>
        </member>
        <member name="M:Granite.Modeling.ModelBase.#ctor">
            <summary>
            Creates a model using the default property bag implementation..
            </summary>
        </member>
        <member name="T:Granite.Modeling.Validators.MaxLengthAttribute">
            <summary>
            This validates a property by ensuring the length is less than or equal to the indicated amount.
            This can be used on strings and IEnumerables
            </summary>
        </member>
        <member name="M:Granite.Modeling.Validators.MaxLengthAttribute.#ctor(System.Int32)">
            <summary>
            This validates a property by ensuring the length is less than or equal to the indicated amount.
            This can be used on strings and IEnumerables
            </summary>
            <param name="maxLength">Maximum length in characters or items</param>
        </member>
        <member name="M:Granite.Modeling.Validators.MaxLengthAttribute.IsValid(System.Object,System.ComponentModel.DataAnnotations.ValidationContext)">
            <summary>
            Validates the specified value with respect to the current validation attribute.
            </summary>
            <returns>
            An instance of the <see cref="T:System.ComponentModel.DataAnnotations.ValidationResult" /> class. 
            </returns>
            <param name="value">
            The value to validate.
            </param>
            <param name="validationContext">
            The context information about the validation operation.
            </param>
        </member>
        <member name="P:Granite.Modeling.Validators.MaxLengthAttribute.MaxLength">
            <summary>
            Maximum length in characters or items
            </summary>
        </member>
    </members>
</doc>
